package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 科研成果表(Achievement)表实体类
 *
 * @author makejava
 * @since 2025-07-21 15:59:40
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("achievement")
public class Achievement implements Serializable {
    /**
     * 科研成果ID
     */
    @ApiModelProperty(value="科研成果ID")
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 科研成果名称
     */
    @ApiModelProperty(value="科研成果名称")
    @TableField(value="name")
    private String name;
    /**
     * 第一作者
     */
    @ApiModelProperty(value="第一作者")
    @TableField(value="first_author")
    private String firstAuthor;

    /**
     * 一级学科
     */
    @ApiModelProperty(value="一级学科")
    @TableField(value="discipline")
    private String discipline;

    /**
     * 成果形式
     */
    @ApiModelProperty(value="成果形式")
    @TableField(value="result_form")
    private String resultForm;

    /**
     * 成果来源
     */
    @ApiModelProperty(value="成果来源")
    @TableField(value="source")
    private String source;

    /**
     * 是否被领导签批
     */
    @ApiModelProperty(value="是否被领导签批，1是批准，0是没有批准")
    @TableField(value="is_approved")
    private Integer isApproved;

    /**
     * 签批领导
     */
    @ApiModelProperty(value="签批领导")
    @TableField(value="approved_leader")
    private String approvedLeader;

//    @ApiModelProperty(value="部门")
//    @TableField(value="dept")
//    private String dept;

    /**
     * 是否被使用单位采纳
     */
    @ApiModelProperty(value="是否被使用单位采纳，1是采纳，0是没有采纳")
    @TableField(value="is_adopted")
    private Integer isAdopted;

    /**
     * 采纳部门
     */
    @ApiModelProperty(value="采纳部门")
    @TableField(value="adopted_department")
    private String adoptedDepartment;

    /**
     * 采纳/签批时间
     */
    @ApiModelProperty(value="采纳/签批时间")
    @TableField(value="adoption_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate adoptionTime;

    /**
     * 级别
     */
    @ApiModelProperty(value="级别")
    @TableField(value="level")
    private String level;

    /**
     * 所属机构
     */
    @ApiModelProperty(value="所属机构")
    @TableField(value="institution")
    private String institution;

    /**
     * 成果引用采纳情况
     */
    @ApiModelProperty(value="成果引用采纳情况")
    @TableField(value="citation_status")
    private String citationStatus;

    /**
     * 所有作者的名字
     */
    @ApiModelProperty(value = "所有作者的名字")
    @TableField("allAuthorName")
    private String allAuthorName;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="录入时间")
    @TableField(value="entered_time")
    private LocalDateTime EnteredTime;

    /**
     * 录入人
     */
    @ApiModelProperty(value="录入人")
    @TableField(value="entered")
    private String entered;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value="未通过原因")
    @TableField(value="reason")
    private String reason;

    /**
     * 审核结果
     */
    @ApiModelProperty(value="审核结果")
    @TableField(value="status")
    private String status;

    @ApiModelProperty(value="量化分数")
    @TableField(value="score")
    private String score;

    @ApiModelProperty(value="录入人名字")
    @TableField(value="enteredName")
    private String enteredName;

    @ApiModelProperty(value="所属机构名称")
    @TableField(value="institutionName")
    private String institutionName;


    /**
     * 所有作者的名字
     */
    @ApiModelProperty(value = "所有作者")
    @TableField("allAuthor")
    private String allAuthor;
}

